#ifndef _GORBATRAS_LIBRARY
#define _GORBATRAS_LIBRARY

//This works better with intellisense
#pragma once
//To decrease compiler time if working with other converter types comment out below:
#ifndef _GORBATRAS_USINGFBX
#define _GORBATRAS_USINGFBX
#endif

#if defined (_DEBUG)
	#if defined(_UNICODE)
		#define Cout std::wcout
	#else
		#define Cout std::cout
	#endif
#endif

#include <iostream>
#include <fstream>
#include <array>
#include <tchar.h>
#include <vector>
#include <map>
#include <boost\function.hpp>
#include <boost\bind.hpp>
#include "fbxsdk.h"

//Gorbatras classes
#include "GorbatrasTypes.h"
#include "ConverterSettings.h"
#include "iConverter.h"

#if defined (_GORBATRAS_USINGFBX)
	//Fbx classes
	//Importer classes
	#include "FbxTypes.h"
	#include "FbxHelper.h"
	#include "FbxAnimationTransform.h"
	#include "FbxAnimationCurve.h"	
	#include "FbxAnimationChannel.h"
	#include "FbxAnimationNode.h"
	#include "FbxAnimationLayer.h"
	#include "FbxAnimation.h"
	#include "FbxSkeleton.h"
	#include "FbxBone.h"
	#include "FbxMesh.h"
	#include "FbxData.h"
	#include "FbxImporter.h"
	//Exporter classes	
	#include "FbxJsonExporter.h"
	#include "FbxExporter.h"
	//The converter class
	#include "FbxConverter.h"
#endif
//Lastly add the ConverterApp
#include "ConverterApp.h"

#endif
